package com.example.chamberlainserver.Entry;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 时间填报实体类
 */
@Data
@NoArgsConstructor
public class TimeReport {
    private Integer id;                    // 主键
    private Integer userId;                // 用户ID
    private String reportDate;             // 填报日期 (格式: YYYY-MM-DD)
    private Double workHours;              // 工作时长 (小时)
    private String description;            // 工作描述
    private String status;                 // 状态: PENDING-待审核, APPROVED-已通过, REJECTED-已拒绝
    private LocalDateTime createTime;      // 创建时间
    private LocalDateTime updateTime;      // 更新时间
    private Integer reviewerId;            // 审核人ID
    private LocalDateTime reviewTime;      // 审核时间
    private String reviewComment;          // 审核备注
    
    // 非数据库字段，用于存储用户信息
    private transient User user;
    
    // 非数据库字段，用于存储审核人信息
    private transient User reviewer;
    
    // 状态常量
    public static final String STATUS_PENDING = "PENDING";
    public static final String STATUS_APPROVED = "APPROVED";
    public static final String STATUS_REJECTED = "REJECTED";
}